import { createRouter, createWebHashHistory, useRouter } from 'vue-router'
import { useCounterStore } from '@/stores/counter';
import { getGrantsFn } from '../utils/grants'

const router = createRouter({
  history: createWebHashHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: '/',
      redirect: '/admin',
    },
    {
      path: '/login',
      component: () => import('../views/LoginView.vue'),
    },
    {
      path: '/admin',
      name: 'admin',
      component: () => import('../views/HomeView.vue'),
      meta: {
        title: '系统管理'
      },
      // children: [
      // 轮播图管理
      // {
      //   path: '/banner',
      //   name: 'banner',
      //   meta: {
      //     title: '轮播图管理'
      //   },
      //   children: [
      //     {
      //       path: 'list',
      //       meta: {
      //         title: '轮播图列表'
      //       },
      //       component: () => import('../views/BannerView.vue'),
      //     }
      //   ]
      // },
      // ]
    },
  ]
})
// 路由全局守卫
router.beforeEach((to, from) => {
  let token = sessionStorage.getItem('token')
  let role = sessionStorage.getItem('role')
  let checkedkeys = JSON.parse((sessionStorage.getItem('checkedkeys') as string))

  const counterStore = useCounterStore() //使用pinia
  if (to.path != '/login' && !token) {
    return '/login'
  }

  if (token && counterStore.checkedkeys.length == 0) {
    counterStore.checkedkeys = getGrantsFn(checkedkeys, role, router)
    return to.path
  }
})
export default router

// children: [
//   // 轮播图管理
//   {
//     path: '/banner',
//     name: 'banner',
//     meta: {
//       title: '轮播图管理'
//     },
//     children: [
//       {
//         path: 'list',
//         meta: {
//           title: '轮播图列表'
//         },
//         component: () => import('../views/BannerView.vue'),
//       }
//     ]
//   },
//   // 产品管理
//   {
//     path: '/pro',
//     name: 'pro',
//     meta: {
//       title: '产品管理'
//     },
//     children: [
//       {
//         path: 'list',
//         component: () => import('../views/Product/ListView.vue'),
//         meta: {
//           title: '产品列表'
//         }
//       },
//       {
//         path: 'seckill',
//         component: () => import('../views/Product/SecKillView.vue'),
//         meta: {
//           title: '秒杀列表'
//         }
//       },
//       {
//         path: 'recommend',
//         component: () => import('../views/Product/RecommendView.vue'),
//         meta: {
//           title: '推荐列表'
//         }
//       },
//       {
//         path: 'search',
//         component: () => import('../views/Product/SearchView.vue'),
//         meta: {
//           title: '筛选列表'
//         }
//       },
//     ]
//   },
//   {
//     path: '/user',
//     name: 'user',
//     meta: {
//       title: '账户管理'
//     },
//     children: [
//       {
//         path: 'list',
//         meta: {
//           title: '用户列表'
//         },
//         component: () => import('../views/Account/UserListView.vue'),
//       },
//       {
//         path: 'managers',
//         meta: {
//           title: '管理员列表'
//         },
//         component: () => import('../views/Account/ManagersView.vue'),
//       }
//     ]
//   }

// ]